/**
 * Sous classe emprunté au projet de Theophile morin
 * permettant de verifier la correct sais d'information par le joueur(coordonnées,mot,etc...)
 */

package util;

import java.io.*;
import java.util.regex.*;

public class Input
{
  static private BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
  static private String regexpMot         = "^[a-zA-Z]+$";                                     // Regex vérifiant la saisie d'un mot
  static private String regexpCoordonnees = "^[a-zA-Z](1|2|3|4|5|6|7|8|9|10|11|12|13|14|15)$"; // Regex vérifiant la saisie d'une coordonnée
  static private String regexpChiffre     = "^[0-9]$";                                         // Regex vérifiant la saisie d'un chiffre

  static public String saisieMot()
  {
    String mot;
    do {
      try { mot = in.readLine(); }
      catch (IOException e) { mot = ""; }
      if (!Pattern.matches(regexpMot, mot))
	System.out.println("Mauvaise saisie");
    } while (!Pattern.matches(regexpMot, mot));
    return mot;
  }

  static public String saisieNom()
  {
    String nom;
    do {
      try { nom = in.readLine(); }
      catch (IOException e) { nom = ""; }
      if (nom.equals(""))
	System.out.println("Mauvaise saisie");
    } while (nom.equals(""));
    return nom;
  }

  static public String saisieCoordonnee()
  {
    String coord;
    do {
      try { coord = in.readLine(); }
      catch (IOException e) { coord = ""; }

      if (!Pattern.matches(regexpCoordonnees, coord))
	System.out.println("Mauvaise saisie");
    } while (!Pattern.matches(regexpCoordonnees, coord));
    return coord;
  }

  static public String saisieOuiNon()
  {
    String input;
    do {
      try { input = in.readLine(); }
      catch (IOException e) { input = ""; }

      if (!input.equals("o") && !input.equals("n"))
	System.out.println("Mauvaise saisie");
    } while (!input.equals("o") && !input.equals("n"));
    return input;
  }

  static public String saisieChiffre(int min, int max)
  {
    String input;
    int chiffre;
    do {
      try { input = in.readLine(); }
      catch (IOException e) { input = String.valueOf(max+1); }

      if (!Pattern.matches(regexpChiffre, input))
	input = String.valueOf(max+1);

      chiffre = Integer.parseInt(input);
      if (chiffre < min || chiffre > max)
	System.out.println("Mauvaise saisie");
    } while (chiffre < min || chiffre > max);
    return input;
  }
}
